#pragma once
#include "RenderTarget.h"

namespace Alice{
    class SceneInterface;
    class SceneViewFamily;
    /**
     * A projection from scene space into a 2D screen region.
     */
    class SceneView
    {
    public:
        const SceneViewFamily* Family;
    };
    /**
     * A set of views into a scene which only have different view transforms and owner actors.
     */
    class SceneViewFamily
    {
    public:
        /** The scene being viewed. */
        SceneInterface* Scene;
        /** The views which make up the family. */
        std::vector<const SceneView*> Views;
        /** All views include main camera views and scene capture views. */
        std::vector<const SceneView*> AllViews;
        /** The render target which the views are being rendered to. */
        const RenderTarget* mRenderTarget;
        const RenderTarget* mRenderTargetDepth;
        SceneViewFamily(const RenderTarget* inRenderTarget,SceneInterface*inScene);
    };
}
